73 research outputs found

    Automating Deductive Verification for Weak-Memory Programs

    Full text link
    Writing correct programs for weak memory models such as the C11 memory model is challenging because of the weak consistency guarantees these models provide. The first program logics for the verification of such programs have recently been proposed, but their usage has been limited thus far to manual proofs. Automating proofs in these logics via first-order solvers is non-trivial, due to reasoning features such as higher-order assertions, modalities and rich permission resources. In this paper, we provide the first implementation of a weak memory program logic using existing deductive verification tools. We tackle three recent program logics: Relaxed Separation Logic and two forms of Fenced Separation Logic, and show how these can be encoded using the Viper verification infrastructure. In doing so, we illustrate several novel encoding techniques which could be employed for other logics. Our work is implemented, and has been evaluated on examples from existing papers as well as the Facebook open-source Folly library.Comment: Extended version of TACAS 2018 publicatio

    Uniqueness Typing for Resource Management in Message-Passing Concurrency

    Get PDF
    We view channels as the main form of resources in a message-passing programming paradigm. These channels need to be carefully managed in settings where resources are scarce. To study this problem, we extend the pi-calculus with primitives for channel allocation and deallocation and allow channels to be reused to communicate values of different types. Inevitably, the added expressiveness increases the possibilities for runtime errors. We define a substructural type system which combines uniqueness typing and affine typing to reject these ill-behaved programs

    Fostering Program Comprehension in Novice Programmers - Learning Activities and Learning Trajectories

    Get PDF
    This working group asserts that Program Comprehension (ProgComp) plays a critical part in the process of writing programs. For example, this paper is written from a basic draft that was edited and revised until it clearly presented our idea. Similarly, a program is written incrementally, with each step tested, debugged and extended until the program achieves its goal. Novice programmers should develop program comprehension skills as they learn to code so that they are able both to read and reason about code created by others, and to reflect on their code when writing, debugging or extending it. To foster such competencies our group identified two main goals: (g1) to collect and define learning activities that explicitly address key components of program comprehension and (g2) to define tentative theoretical learning trajectories that will guide teachers as they select and sequence those learning activities in their CS0/CS1/CS2 or K-12 courses. The WG has completed the first goal and laid down a strong foundation towards the second goal as presented in this report. After a thorough literature review, a detailed description of the Block Model is provided, as this model has been used with a dual purpose, to classify and present an extensive list of ProgComp tasks, and to describe a possible learning trajectory for a complex task, covering different cells of the Block Model matrix. The latter is intended to help instructors to decompose complex tasks and identify which aspects of ProgComp are being fostered

    Toward a History of Women Projectionists in Post-war British Cinemas

    Get PDF
    Cinema projection is usually understood to be a male-dominated occupation, with the projection box characterised as a gendered space separate from the more typically feminine front-of-house roles. Although this is a fairly accurate representation, it risks eliminating all traces of women’s labour in the projection box. Previous work by David R. Williams (1997) and Rebecca Harrison (2016) has addressed the role of women projectionists during wartime, and this article begins to excavate a hidden history of women projectionists in a peacetime context. The article uses oral testimony from two women – Florence Barton and Joan Pearson – who worked as projectionists in the mid-twentieth century. Their accounts are presented in the article as two portraits, which aim to convey a sense of the women’s everyday lives in the projection box, as well as think about implications that their stories have for our understanding of women’s roles in projection more broadly. Of particular significance to both Barton and Pearson are the relationships that they had with their male colleagues, the possibilities afforded for career progression (and the different paths taken by the women) and the nature of projection work. The women’s repeated assertions that they were expected to do the same jobs as their male counterparts form a key aspect of the interviews, which suggest there is scope for further investigation of women’s labour specifically in projection boxes and in cinemas more generally
    • …
    corecore